library(tidyverse)
## ── Attaching packages ────────────────────────────────────── tidyverse 1.3.0 ──
## ✓ ggplot2 3.3.1 ✓ purrr 0.3.4
## ✓ tibble 3.0.1 ✓ dplyr 1.0.0
## ✓ tidyr 1.1.0 ✓ stringr 1.4.0
## ✓ readr 1.3.1 ✓ forcats 0.5.0
## ── Conflicts ───────────────────────────────────────── tidyverse_conflicts() ──
## x dplyr::filter() masks stats::filter()
## x dplyr::lag() masks stats::lag()
library(dplyr)
library(lubridate)
##
## Attaching package: 'lubridate'
## The following objects are masked from 'package:base':
##
## date, intersect, setdiff, union
library(DT)
library(plotly)
##
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
##
## last_plot
## The following object is masked from 'package:stats':
##
## filter
## The following object is masked from 'package:graphics':
##
## layout
usConfirmed_03_13 <- read_csv(url("https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_daily_reports/03-13-2020.csv")) %>%
rename(Country_Region = "Country/Region", Province_State = "Province/State") %>%
filter (Country_Region == "US") %>%
group_by(Province_State, Country_Region) %>%
summarise(Confirmed = sum(Confirmed))
## Parsed with column specification:
## cols(
## `Province/State` = col_character(),
## `Country/Region` = col_character(),
## `Last Update` = col_datetime(format = ""),
## Confirmed = col_double(),
## Deaths = col_double(),
## Recovered = col_double(),
## Latitude = col_double(),
## Longitude = col_double()
## )
## `summarise()` regrouping output by 'Province_State' (override with `.groups` argument)
usConfirmed_09_13 <- read_csv(url("https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_daily_reports/09-13-2020.csv")) %>%
filter (Country_Region == "US") %>%
group_by(Province_State, Country_Region) %>%
summarise(Confirmed = sum(Confirmed))
## Parsed with column specification:
## cols(
## FIPS = col_double(),
## Admin2 = col_character(),
## Province_State = col_character(),
## Country_Region = col_character(),
## Last_Update = col_datetime(format = ""),
## Lat = col_double(),
## Long_ = col_double(),
## Confirmed = col_double(),
## Deaths = col_double(),
## Recovered = col_double(),
## Active = col_double(),
## Combined_Key = col_character(),
## Incidence_Rate = col_double(),
## `Case-Fatality_Ratio` = col_double()
## )
## `summarise()` regrouping output by 'Province_State' (override with `.groups` argument)
setdiff(usConfirmed_09_13$Province_State, usConfirmed_03_13$Province_State)
## [1] "Guam" "Northern Mariana Islands"
## [3] "Puerto Rico" "Recovered"
## [5] "Virgin Islands"
usConfirmed_09_13 <- usConfirmed_09_13 %>%
filter(Province_State != "Recovered")
usJoinedConfirmed <- full_join(usConfirmed_03_13, usConfirmed_09_13, by = c("Province_State")) %>%
select("Province_State", "Confirmed.x", "Confirmed.y") %>%
rename(confirmed_03_13 = "Confirmed.x", confirmed_09_13 = "Confirmed.y") %>%
replace_na(list(confirmed_03_13 = 0))
usJoinedConfirmedLong <- usJoinedConfirmed %>%
pivot_longer(-c(Province_State), names_to = "Date", values_to = "Confirmed")
long_plot <- ggplot(usJoinedConfirmedLong, aes(x = Confirmed, y = Province_State)) +
geom_point(aes(color = Date))
long_plot
tsLongConfirmed <- read_csv(url("https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_covid19_confirmed_global.csv")) %>%
rename(Province_State = "Province/State", Country_Region = "Country/Region") %>%
pivot_longer(-c(Province_State, Country_Region, Lat, Long), names_to = "Date", values_to = "Confirmed")
## Parsed with column specification:
## cols(
## .default = col_double(),
## `Province/State` = col_character(),
## `Country/Region` = col_character()
## )
## See spec(...) for full column specifications.
tsLongDeaths <- read_csv(url("https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_covid19_deaths_global.csv")) %>%
rename(Province_State = "Province/State", Country_Region = "Country/Region") %>%
pivot_longer(-c(Province_State, Country_Region, Lat, Long), names_to = "Date", values_to = "Deaths")
## Parsed with column specification:
## cols(
## .default = col_double(),
## `Province/State` = col_character(),
## `Country/Region` = col_character()
## )
## See spec(...) for full column specifications.
tsLongConfirmed <- tsLongConfirmed %>%
unite(Key, Province_State, Country_Region, Date, sep = ".", remove = FALSE)
tsLongDeaths_temp <- tsLongDeaths %>%
unite(Key, Province_State, Country_Region, Date, sep = ".", remove = FALSE) %>%
select("Key", "Deaths")
tsLongUnited <- full_join(tsLongConfirmed, tsLongDeaths_temp, by = c("Key")) %>%
select(-Key)
tsLongUnited$Date <- mdy(tsLongUnited$Date)
tsLongUnitedCounts <- tsLongUnited %>%
pivot_longer(-c(Province_State, Country_Region, Lat, Long, Date),
names_to = "Report_Type", values_to = "Counts")
tsLongUnited %>%
group_by(Country_Region,Date) %>%
summarise_at(c("Confirmed", "Deaths"), sum) %>%
filter (Country_Region == "US") %>%
ggplot(aes(x = Date, y = Deaths)) +
geom_point() +
geom_line() +
ggtitle("US COVID-19 Deaths")
tsLongUnited %>%
group_by(Country_Region,Date) %>%
summarise_at(c("Confirmed", "Deaths"), sum) %>%
filter (Country_Region %in% c("China","Japan", "Korea, South", "Italy","Spain", "US")) %>%
ggplot(aes(x = Date, y = Deaths)) +
geom_point() +
geom_line() +
ggtitle("COVID-19 Deaths") +
facet_wrap(~Country_Region, ncol=2, scales="free_y")
tsLongUnited %>%
group_by(Country_Region,Date) %>%
summarise_at(c("Confirmed", "Deaths"), sum) %>%
filter (Country_Region %in% c("China","France","Italy", "Korea, South", "US")) %>%
ggplot(aes(x = Date, y = Deaths, color = Country_Region)) +
geom_point() +
geom_line() +
ggtitle("COVID-19 Deaths")
tsLongUnitedCounts %>%
group_by(Country_Region, Report_Type, Date) %>%
summarise(Counts = sum(Counts)) %>%
filter (Country_Region == "US") %>%
ggplot(aes(x = Date, y = log2(Counts), fill = Report_Type, color = Report_Type)) +
geom_point() +
geom_line() +
ggtitle("US COVID-19 Cases")
## `summarise()` regrouping output by 'Country_Region', 'Report_Type' (override with `.groups` argument)
usConfirmed_04_13 <- read_csv(url("https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_daily_reports/04-13-2020.csv")) %>%
filter (Country_Region == "US") %>%
group_by(Province_State, Country_Region) %>%
summarise(Confirmed = sum(Confirmed)) %>%
filter(Province_State != "Recovered")
## Parsed with column specification:
## cols(
## FIPS = col_double(),
## Admin2 = col_character(),
## Province_State = col_character(),
## Country_Region = col_character(),
## Last_Update = col_datetime(format = ""),
## Lat = col_double(),
## Long_ = col_double(),
## Confirmed = col_double(),
## Deaths = col_double(),
## Recovered = col_double(),
## Active = col_double(),
## Combined_Key = col_character()
## )
## `summarise()` regrouping output by 'Province_State' (override with `.groups` argument)
usConfirmed_05_13 <- read_csv(url("https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_daily_reports/05-13-2020.csv")) %>%
filter (Country_Region == "US") %>%
group_by(Province_State, Country_Region) %>%
summarise(Confirmed = sum(Confirmed)) %>%
filter(Province_State != "Recovered")
## Parsed with column specification:
## cols(
## FIPS = col_double(),
## Admin2 = col_character(),
## Province_State = col_character(),
## Country_Region = col_character(),
## Last_Update = col_datetime(format = ""),
## Lat = col_double(),
## Long_ = col_double(),
## Confirmed = col_double(),
## Deaths = col_double(),
## Recovered = col_double(),
## Active = col_double(),
## Combined_Key = col_character()
## )
## `summarise()` regrouping output by 'Province_State' (override with `.groups` argument)
usConfirmed_06_13 <- read_csv(url("https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_daily_reports/06-13-2020.csv")) %>%
filter (Country_Region == "US") %>%
group_by(Province_State, Country_Region) %>%
summarise(Confirmed = sum(Confirmed)) %>%
filter(Province_State != "Recovered")
## Parsed with column specification:
## cols(
## FIPS = col_double(),
## Admin2 = col_character(),
## Province_State = col_character(),
## Country_Region = col_character(),
## Last_Update = col_datetime(format = ""),
## Lat = col_double(),
## Long_ = col_double(),
## Confirmed = col_double(),
## Deaths = col_double(),
## Recovered = col_double(),
## Active = col_double(),
## Combined_Key = col_character(),
## Incidence_Rate = col_double(),
## `Case-Fatality_Ratio` = col_double()
## )
## `summarise()` regrouping output by 'Province_State' (override with `.groups` argument)
usConfirmed_07_13 <- read_csv(url("https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_daily_reports/06-13-2020.csv")) %>%
filter (Country_Region == "US") %>%
group_by(Province_State, Country_Region) %>%
summarise(Confirmed = sum(Confirmed)) %>%
filter(Province_State != "Recovered")
## Parsed with column specification:
## cols(
## FIPS = col_double(),
## Admin2 = col_character(),
## Province_State = col_character(),
## Country_Region = col_character(),
## Last_Update = col_datetime(format = ""),
## Lat = col_double(),
## Long_ = col_double(),
## Confirmed = col_double(),
## Deaths = col_double(),
## Recovered = col_double(),
## Active = col_double(),
## Combined_Key = col_character(),
## Incidence_Rate = col_double(),
## `Case-Fatality_Ratio` = col_double()
## )
## `summarise()` regrouping output by 'Province_State' (override with `.groups` argument)
usConfirmed_08_13 <- read_csv(url("https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_daily_reports/06-13-2020.csv")) %>%
filter (Country_Region == "US") %>%
group_by(Province_State, Country_Region) %>%
summarise(Confirmed = sum(Confirmed)) %>%
filter(Province_State != "Recovered")
## Parsed with column specification:
## cols(
## FIPS = col_double(),
## Admin2 = col_character(),
## Province_State = col_character(),
## Country_Region = col_character(),
## Last_Update = col_datetime(format = ""),
## Lat = col_double(),
## Long_ = col_double(),
## Confirmed = col_double(),
## Deaths = col_double(),
## Recovered = col_double(),
## Active = col_double(),
## Combined_Key = col_character(),
## Incidence_Rate = col_double(),
## `Case-Fatality_Ratio` = col_double()
## )
## `summarise()` regrouping output by 'Province_State' (override with `.groups` argument)
usJoinedConfirmed <- full_join(usJoinedConfirmed, usConfirmed_04_13, by = c("Province_State")) %>%
rename(confirmed_04_13 = "Confirmed") %>%
select(-Country_Region)
usJoinedConfirmed <- full_join(usJoinedConfirmed, usConfirmed_05_13, by = c("Province_State")) %>%
rename(confirmed_05_13 = "Confirmed") %>%
select(-Country_Region)
usJoinedConfirmed <- full_join(usJoinedConfirmed, usConfirmed_06_13, by = c("Province_State")) %>%
rename(confirmed_06_13 = "Confirmed") %>%
select(-Country_Region)
usJoinedConfirmed <- full_join(usJoinedConfirmed, usConfirmed_07_13, by = c("Province_State")) %>%
rename(confirmed_07_13 = "Confirmed") %>%
select(-Country_Region)
usJoinedConfirmed <- full_join(usJoinedConfirmed, usConfirmed_08_13, by = c("Province_State")) %>%
rename(confirmed_08_13 = "Confirmed") %>%
select(-Country_Region)
usJoinedConfirmedLongMonths <- usJoinedConfirmed %>%
pivot_longer(-c(Province_State), names_to = "Date", values_to = "Confirmed") %>%
arrange(desc(Province_State))
state_monthly_plot <- ggplot(usJoinedConfirmedLongMonths, aes(x = Confirmed, y = Province_State)) +
geom_point(aes(color = Date)) + ggtitle("Monthly Confirmed State Cases of Mar 13th - Sept 13th ") + xlab("Number of Confirmed Cases") + ylab("States")
state_monthly_plot
tsLongDeaths$Date <- mdy(tsLongDeaths$Date)
rtsLongDeaths <- tsLongDeaths %>%
group_by(Date) %>%
summarise(Deaths = sum(Deaths)) %>%
arrange(Date) %>%
ggplot(aes(x = Date, y = Deaths)) +
geom_point() +
geom_line() +
ggtitle("Daily Worldwide Death Growth")
## `summarise()` ungrouping output (override with `.groups` argument)
rtsLongDeaths
tsLongUnited2 <- tsLongUnited %>%
mutate(ratio = Deaths/Confirmed)
usDeathsRatio <- tsLongUnited2 %>%
filter(Country_Region == "US") %>%
filter(!is.na(ratio)) %>%
ggplot(aes(x = Date, y = ratio)) +
geom_point() +
geom_line() +
ggtitle("Daily Death to Cases Ratio in the US")
usDeathsRatio
countryDeaths <- tsLongDeaths %>%
group_by(Country_Region) %>%
summarise(Deaths = sum(Deaths)) %>%
arrange(desc(Deaths)) %>%
slice(1:10)
## `summarise()` ungrouping output (override with `.groups` argument)
countryDeaths
## # A tibble: 10 x 2
## Country_Region Deaths
## <chr> <dbl>
## 1 US 22711098
## 2 Brazil 11506250
## 3 United Kingdom 6450946
## 4 Italy 5977374
## 5 Mexico 5733990
## 6 India 5213446
## 7 France 5015175
## 8 Spain 4912421
## 9 Iran 2379885
## 10 Peru 2377876
mostDeathsTT <- tsLongUnited %>%
filter(Country_Region %in% countryDeaths$Country_Region) %>%
group_by(Date, Country_Region) %>%
summarise_at("Deaths", sum) %>%
ggplot(aes(x = Date, y = Deaths, color = Country_Region)) +
geom_point() +
geom_line() +
ggtitle("10 Nations with Highest Death Rates")
mostDeathsTT
mostDeathsTTF <- tsLongUnited %>%
filter(Country_Region %in% countryDeaths$Country_Region) %>%
group_by(Date, Country_Region) %>%
summarise_at("Deaths", sum) %>%
ggplot(aes(x = Date, y = Deaths, color = Country_Region)) +
geom_point() +
geom_line() +
ggtitle("10 Nations with Highest Death Rates") +
facet_wrap(~Country_Region, ncol=2, scales="free_y")
mostDeathsTTF
tsLongConfirmedUS <- read_csv(url("https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_covid19_confirmed_US.csv")) %>%
select(-c("UID", "iso2", "iso3", "code3", "FIPS", "Admin2")) %>%
pivot_longer(-c("Country_Region", "Lat", "Long_", "Combined_Key", "Province_State"), names_to = "Date", values_to = "Confirmed") %>%
filter(Province_State != "Recovered")
## Parsed with column specification:
## cols(
## .default = col_double(),
## iso2 = col_character(),
## iso3 = col_character(),
## Admin2 = col_character(),
## Province_State = col_character(),
## Country_Region = col_character(),
## Combined_Key = col_character()
## )
## See spec(...) for full column specifications.
tsLongConfirmedUS$Date <- mdy(tsLongConfirmedUS$Date)
tsLongConfirmedUS <- tsLongConfirmedUS %>%
group_by(Province_State, Date) %>%
summarise_at("Confirmed", sum)
ggplot(tsLongConfirmedUS, aes(x= Date, y = Confirmed, color = Province_State)) +
geom_point() +
geom_line() +
ggtitle("Case Rates in the US States") +
facet_wrap(~Province_State, ncol=5, scales="free_y")
mostDeathsTTF + theme_dark()
Application written in R (R Core Team 2015) using the Shiny framework (Chang et al. 2015).
Chang, W., J. Cheng, JJ. Allaire, Y. Xie, and J. McPherson. 2015. “Shiny: Web Application Framework for R. R Package Version 0.12.1.” Computer Program. http://CRAN.R-project.org/package=shiny.
R Core Team. 2015. “R: A Language and Environment for Statistical Computing.” Journal Article. http://www.R-project.org.